const http = require('http');
const querystring = require('querystring');

// 1. 从命令行参数获取用户名和密码
const [username, password] = process.argv.slice(2);

// 验证参数是否传入
if (!username || !password) {
  console.error('用法：node clientPost.js <用户名> <密码>');
  console.error('示例：node clientPost.js zhangsan 12354');
  process.exit(1); // 退出程序，状态码1表示错误
}

// 2. 构造POST请求数据
const postData = querystring.stringify({
  username: username,
  password: password
});

// 3. 配置POST请求选项
const options = {
  hostname: 'localhost',
  port: 8081,
  path: '/login',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData) // 计算请求体长度
  }
};

// 4. 发送POST请求
const req = http.request(options, (res) => {
  let responseData = '';

  // 接收服务端响应
  res.on('data', (chunk) => {
    responseData += chunk;
  });

  // 响应接收完成，打印结果
  res.on('end', () => {
    console.log('服务端返回：', responseData);
  });
});

// 处理请求错误
req.on('error', (err) => {
  console.error('请求失败：', err.message);
});

// 发送请求体数据
req.write(postData);
req.end(); // 结束请求（必须调用）